using System;
using Avalonia.Controls;
using mas.ViewModels;
using mas.Models;
using System.Collections.ObjectModel;
using Avalonia.Interactivity;
using Avalonia.Media;
using System.Runtime.InteropServices;

namespace mas.Views;

public partial class HeaderWindow : Window
{
    private HeaderWindowViewModel _viewModel;  // 保存ViewModel引用
    public HeaderWindow(ObservableCollection<HeaderData> headers)
    {
        InitializeComponent();
        _viewModel = new HeaderWindowViewModel(headers);
        DataContext = _viewModel;
        // 检查是否在Linux上运行，如果是则使用纯黑色背景而不是亚克力效果
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
        {
            // 在Linux上使用纯黑色背景
            Background = new SolidColorBrush(Colors.Black);
        }
        else
        {
            // 在Windows和macOS上保留亚克力模糊效果
            TransparencyLevelHint = [WindowTransparencyLevel.AcrylicBlur];
            Background = Brushes.Transparent;
        }
    }
    // 按钮点击事件处理
    private void HeaderButton_Click(object sender, RoutedEventArgs e)
    {
        if (sender is Button button && button.CommandParameter is HeaderData header)
        {
            // 直接调用ViewModel的命令方法
            _viewModel.OpenDetailWindow(header);
        }
    }
    
    // 窗口关闭时释放资源
    protected override void OnClosed(EventArgs e)
    {
        base.OnClosed(e);
        _viewModel.Dispose();
    }
}
